<html>
    <head>
        <title>添加模块额外程序集  Additional Module Assemblies</title>
    </head>
    <body>
        <script>
             /*
                        四、添加模块额外程序集  Additional Module Assemblies  

                                    ABP自动将模块的所有服务注册到依赖注入系统。

                                    它通过扫描定义模块类的程序集中的类型来查找服务类型。该程序集被视为模块的主程序集。


                                    通常，每个程序集都包含一个单独的模块类定义。然后模块使用DependsOn属性相互依赖，如上一节所述。

                                    但是，在一些罕见的情况下，你的模块可能由多个程序集组成，其中只有一个程序集定义了一个模块类，并且你希望将其他程序集作为模块的一部分。

                                    在这种情况下，你可以使用AdditionalAssembly属性，如下所示：

                                            [DependsOn(...)] // 正常的模块依赖
                                            [AdditionalAssembly(typeof(BlogService))] // 添加额外的程序集依赖
                                            public class BlogModule
                                            {
                                                //...
                                            }
                                            
                                        在此示例中，我们假设BlogService类位于一个程序集中（csproj），而BlogModule类位于另一个程序集中（csproj）。

                                        使用AdditionalAssembly定义，ABP将加载包含BlogService类的程序集作为博客模块的一部分。

                                        请注意，BlogService只是目标程序集中的任意选定类型。它仅用于指示相关程序集。你可以在程序集中使用任何类型。


                                        （警告：如果你需要使用AdditionalAssembly，请确保你没有以错误的方式设计系统。
                                        
                                                通过上面的示例，BlogService类'程序集通常应该有自己的模块类，并且BlogModule应该使用DependsOn属性依赖于它。
                                                
                                                当你已经可以使用DependsOn属性时，不要使用AdditionalAssembly属性
                                        ）
                    */

        </script>
    </body>
</html>